package com.es.dto;

import lombok.Data;
import org.elasticsearch.common.unit.DistanceUnit;
import org.elasticsearch.search.sort.FieldSortBuilder;
import org.elasticsearch.search.sort.SortOrder;

import java.util.List;

/**
 * 类描述
 *
 * @author: wxf
 * @time: 2020/7/22 18:04
 * @version:
 */
@Data
public class EsLocationParamDTO<T> extends EsPageNoAndSizeDTO{
    /**
     * 维度
     */
    private double lat;
    /**
     * 经度
     */
    private double lon;
    /**
     * 查询的字段
     */
    private String location;
    /**
     * 索引名称
     */
    private String index;
    /**
     * 返回的类泛型
     */
    private Class<T> clazz;
    /**
     * 搜索的范围半径
     */
    private Integer distance;
    /**
     * 搜索的范围半径单位 如 米 、 千米
     */
    private DistanceUnit distanceUnit;
    /**
     * 排序规则 （默认升序）
     */
    private SortOrder sortOrder;
    /**
     * 排序规则 允许多个排序规则
     * new FieldSortBuilder("age").order(SortOrder.DESC)
     */
    private List<FieldSortBuilder> sortBuilderList;
    /**
     * 不包含的字段
     */
    private String[] excludes;
}
